@charset "utf-8";
/* SIR 지운아빠 */

/* ### 기본 스타일 커스터마이징 시작 ### */

/* 게시판 버튼 */
/* 목록 버튼 */
#bo_list a.btn_b01 {}

#bo_list a.btn_b01:focus,
#bo_list a.btn_b01:hover {}

#bo_list a.btn_b02 {}

#bo_list a.btn_b02:focus,
#bo_list a.btn_b02:hover {}

#bo_list a.btn_admin {}

/* 관리자 전용 버튼 */
#bo_list a.btn_admin:focus,
#bo_list .btn_admin:hover {}

/* 읽기 버튼 */
#bo_v a.btn_b01 {}

#bo_v a.btn_b01:focus,
#bo_v a.btn_b01:hover {}

#bo_v a.btn_b02 {}

#bo_v a.btn_b02:focus,
#bo_v a.btn_b02:hover {}

#bo_v a.btn_admin {}

/* 관리자 전용 버튼 */
#bo_v a.btn_admin:focus,
#bo_v a.btn_admin:hover {}

/* 쓰기 버튼 */
#bo_w .btn_confirm {}

/* 서식단계 진행 */
#bo_w .btn_submit {}

#bo_w button.btn_submit {}

#bo_w fieldset .btn_submit {}

#bo_w .btn_cancel {}

#bo_w button.btn_cancel {}

#bo_w .btn_cancel:focus,
#bo_w .btn_cancel:hover {}

#bo_w a.btn_frmline,
#bo_w button.btn_frmline {}

/* 우편번호검색버튼 등 */
#bo_w button.btn_frmline {}

/* 기본 테이블 */
/* 목록 테이블 */
#bo_list .tbl_head01 {}

#bo_list .tbl_head01 caption {}

#bo_list .tbl_head01 thead th {}

#bo_list .tbl_head01 thead a {}

#bo_list .tbl_head01 thead th input {}

/* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_list .tbl_head01 tfoot th {}

#bo_list .tbl_head01 tfoot td {}

#bo_list .tbl_head01 tbody th {}

#bo_list .tbl_head01 td {}

#bo_list .tbl_head01 a {}

#bo_list td.empty_table {}

/* 읽기 내 테이블 */
#bo_v .tbl_head01 {}

#bo_v .tbl_head01 caption {}

#bo_v .tbl_head01 thead th {}

#bo_v .tbl_head01 thead a {}

#bo_v .tbl_head01 thead th input {}

/* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_v .tbl_head01 tfoot th {}

#bo_v .tbl_head01 tfoot td {}

#bo_v .tbl_head01 tbody th {}

#bo_v .tbl_head01 td {}

#bo_v .tbl_head01 a {}

#bo_v td.empty_table {}

/* 쓰기 테이블 */
#bo_w table {}

#bo_w caption {}

#bo_w .frm_info {}

#bo_w .frm_address {}

#bo_w .frm_file {}

#bo_w .tbl_frm01 {}

#bo_w .tbl_frm01 th {
    width: 80px;
    padding: 7px 13px;
}

#bo_w .tbl_frm01 td {
    padding: 3px 10px;
}

#bo_w .tbl_frm01 textarea,
#bo_w tbl_frm01 .frm_input {}

#bo_w .tbl_frm01 textarea {}

/*
#bo_w .tbl_frm01 #captcha {}
#bo_w .tbl_frm01 #captcha input {}
*/
#bo_w .tbl_frm01 a {}

/* 필수입력 */
#bo_w .required,
#bo_w textarea.required {}

#bo_w .cke_sc {}

#bo_w button.btn_cke_sc {}

#bo_w .cke_sc_def {}

#bo_w .cke_sc_def dl {}

#bo_w .cke_sc_def dl:after {}

#bo_w .cke_sc_def dt,
#bo_w .cke_sc_def dd {}

#bo_w .cke_sc_def dt {}

#bo_w .cke_sc_def dd {}

/* ### 기본 스타일 커스터마이징 끝 ### */

/* 게시판 목록 */
#bo_list .td_board {
    width: 120px;
    text-align: center
}

#bo_list .td_chk {
    width: 30px;
    text-align: center
}

#bo_list .td_date {
    width: 60px;
    text-align: center
}

#bo_list .td_datetime {
    width: 110px;
    text-align: center
}

#bo_list .td_group {
    width: 100px;
    text-align: center
}

#bo_list .td_mb_id {
    width: 100px;
    text-align: center
}

#bo_list .td_mng {
    width: 80px;
    text-align: center
}

#bo_list .td_name {
    width: 100px;
    text-align: center;
    vertical-align: middle;
    /* 열의 내용이 중간에 정렬되도록 설정 */
    line-height: 1.5em;
    /* 줄 높이를 통일하여 줄 맞춤 개선 */
}

#bo_list .td_nick {
    width: 100px;
    text-align: center
}

#bo_list .td_num {
    width: 70px;
    /* 50px에서 70px로 늘림 */
    text-align: center;
    white-space: nowrap;
    /* 텍스트가 줄바꿈되지 않도록 설정 */
    overflow: visible;
    /* 내용이 너비를 초과해도 보이도록 설정 */
}

#bo_list .td_numbig {
    width: 80px;
    text-align: center
}

#bo_list .td_subject {
    width: auto;
    text-align: left;
    vertical-align: middle;
    /* 열의 내용이 중간에 정렬되도록 설정 */
    line-height: 1.5em;
    /* 줄 높이를 통일하여 줄 맞춤 개선 */
}

#bo_list .txt_active {
    color: #5d910b
}

#bo_list .txt_expired {
    color: #ccc
}

#bo_cate h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_cate ul {
    margin-bottom: 10px;
    padding-left: 1px;
    width: 728px;
    zoom: 1
}

#bo_cate ul:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_cate li {
    float: left;
    margin-bottom: -1px
}

#bo_cate a {
    display: block;
    position: relative;
    margin-left: -1px;
    padding: 6px 0 5px;
    width: 90px;
    border: 1px solid #ddd;
    background: #f7f7f7;
    color: #888;
    text-align: center;
    letter-spacing: -0.1em;
    line-height: 1.2em;
    cursor: pointer
}

#bo_cate a:focus,
#bo_cate a:hover,
#bo_cate a:active {
    text-decoration: none
}

#bo_cate #bo_cate_on {
    z-index: 2;
    border: 1px solid #565e60;
    background: #fff;
    color: #565e60;
    font-weight: bold
}

.td_subject img {
    margin-left: 3px
}

/* 게시판 목록 공통 */
.bo_fx {
    margin-bottom: 5px;
    zoom: 1
}

.bo_fx:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

.bo_fx ul {
    margin: 0;
    padding: 0;
    list-style: none
}

#bo_list_total {
    float: left;
    padding-top: 5px
}

.btn_bo_user {
    float: right;
    margin: 0;
    padding: 0;
    list-style: none
}

.btn_bo_user li {
    float: left;
    margin-left: 5px
}

.btn_bo_adm {
    float: left
}

.btn_bo_adm li {
    float: left;
    margin-right: 5px
}

.btn_bo_adm input {
    padding: 8px;
    border: 0;
    background: #e8180c;
    color: #fff;
    text-decoration: none;
    vertical-align: middle
}

.bo_notice td {
    background: #f5f6fa
}

.bo_notice td a {
    font-weight: bold
}

.td_num strong {
    color: #000
}

.bo_cate_link {
    display: inline-block;
    margin: 0 3px 0 0;
    padding: 0 6px 0 0;
    border-right: 1px solid #e7f1ed;
    color: #999 !important;
    font-weight: bold;
    text-decoration: none
}

/* 글제목줄 분류스타일 */
.bo_current {
    color: #e8180c
}

#bo_list .cnt_cmt {
    display: inline-block;
    margin: 0 0 0 3px;
    font-weight: bold
}

#bo_sch {
    margin-bottom: 10px;
    padding-top: 5px;
    text-align: center
}

#bo_sch legend {
    position: absolute;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
    text-indent: -9999em;
    overflow: hidden
}

/* 게시판 쓰기 */
#char_count_desc {
    display: block;
    margin: 0 0 5px;
    padding: 0
}

#char_count_wrap {
    margin: 5px 0 0;
    text-align: right
}

#char_count {
    font-weight: bold
}

#autosave_wrapper {
    position: relative
}

#autosave_pop {
    display: none;
    z-index: 10;
    position: absolute;
    top: 24px;
    right: 117px;
    padding: 8px;
    width: 350px;
    height: auto !important;
    height: 180px;
    max-height: 180px;
    border: 1px solid #565656;
    background: #fff;
    overflow-y: scroll
}

html.no-overflowscrolling #autosave_pop {
    height: auto;
    max-height: 10000px !important
}

/* overflow 미지원 기기 대응 */
#autosave_pop strong {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#autosave_pop div {
    text-align: right
}

#autosave_pop button {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent
}

#autosave_pop ul {
    margin: 10px 0;
    padding: 0;
    border-top: 1px solid #e9e9e9;
    list-style: none
}

#autosave_pop li {
    padding: 8px 5px;
    border-bottom: 1px solid #e9e9e9;
    zoom: 1
}

#autosave_pop li:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#autosave_pop a {
    display: block;
    float: left
}

#autosave_pop span {
    display: block;
    float: right
}

.autosave_close {
    cursor: pointer
}

.autosave_content {
    display: none
}

/* 게시판 읽기 */
#bo_v {
    margin-bottom: 20px;
    padding-bottom: 20px
}

#bo_v_table {
    position: absolute;
    top: 0;
    right: 16px;
    margin: 0;
    padding: 0 5px;
    height: 25px;
    background: #ff3061;
    color: #fff;
    font-weight: bold;
    line-height: 2.2em
}

#bo_v_title {
    padding: 10px 0;
    font-size: 1.2em
}

#bo_v_info {
    padding: 0 0 10px;
    border-bottom: 1px solid #ddd
}

#bo_v_info h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_info strong {
    display: inline-block;
    margin: 0 15px 0 5px;
    font-weight: normal
}

#bo_v_info .sv_member,
#bo_v_info .sv_guest,
#bo_v_info .member,
#bo_v_info .guest {
    font-weight: bold
}

#bo_v_file {}

#bo_v_file h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_file ul {
    margin: 0;
    padding: 0;
    list-style: none
}

#bo_v_file li {
    padding: 0 10px;
    border-bottom: 1px solid #eee;
    background: #f5f6fa
}

#bo_v_file a {
    display: inline-block;
    padding: 8px 0 7px;
    width: 100%;
    color: #000;
    word-wrap: break-word
}

#bo_v_file a:focus,
#bo_v_file a:hover,
#bo_v_file a:active {
    text-decoration: none
}

#bo_v_file img {
    float: left;
    margin: 0 10px 0 0
}

.bo_v_file_cnt {
    display: inline-block;
    margin: 0 0 3px 16px
}

#bo_v_link {}

#bo_v_link h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_link ul {
    margin: 0;
    padding: 0;
    list-style: none
}

#bo_v_link li {
    padding: 0 10px;
    border-bottom: 1px solid #eee;
    background: #f5f6fa
}

#bo_v_link a {
    display: inline-block;
    padding: 8px 0 7px;
    width: 100%;
    color: #000;
    word-wrap: break-word
}

#bo_v_link a:focus,
#bo_v_link a:hover,
#bo_v_link a:active {
    text-decoration: none
}

.bo_v_link_cnt {
    display: inline-block;
    margin: 0 0 3px 16px
}

#bo_v_top {
    margin: 0 0 10px;
    padding: 10px 0;
    zoom: 1
}

#bo_v_top:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_v_top h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_top ul {
    margin: 0;
    padding: 0;
    list-style: none
}

#bo_v_bot {
    zoom: 1
}

#bo_v_bot:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_v_bot h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_bot ul {
    margin: 0;
    padding: 0;
    list-style: none
}

.bo_v_nb {
    float: left
}

.bo_v_nb li {
    float: left;
    margin-right: 5px
}

.bo_v_com {
    float: right
}

.bo_v_com li {
    float: left;
    margin-left: 5px
}

#bo_v_atc {
    min-height: 200px;
    height: auto !important;
    height: 200px
}

#bo_v_atc_title {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_v_img {
    margin: 0 0 10px;
    width: 100%;
    overflow: hidden;
    zoom: 1
}

#bo_v_img:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_v_img img {
    margin-bottom: 20px;
    max-width: 100%;
    height: auto
}

#bo_v_con {
    margin-bottom: 30px;
    width: 100%;
    line-height: 1.7em;
    word-break: break-all;
    overflow: hidden
}

#bo_v_con a {
    color: #000;
    text-decoration: underline
}

#bo_v_con img {
    max-width: 100%;
    height: auto
}

#bo_v_act {
    margin-bottom: 30px;
    text-align: center
}

#bo_v_act .bo_v_act_gng {
    position: relative
}

#bo_v_act a {
    margin-right: 5px;
    vertical-align: middle
}

#bo_v_act strong {
    color: #ff3061
}

#bo_v_act_good,
#bo_v_act_nogood {
    display: none;
    position: absolute;
    top: 30px;
    left: 0;
    padding: 10px 0;
    width: 165px;
    background: #ff3061;
    color: #fff;
    text-align: center
}

#bo_v_sns {
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
    zoom: 1
}

#bo_v_sns:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_v_sns li {
    float: left;
    margin: 0 5px 0 0
}

/* 게시판 댓글 */
#bo_vc {
    margin: 0 0 20px;
    padding: 20px 20px 10px;
    border: 1px solid #e5e8ec;
    background: #f5f8f9
}

#bo_vc h2 {
    margin-bottom: 10px
}

#bo_vc article {
    padding: 0 0 10px;
    border-top: 1px dotted #ccc
}

#bo_vc header {
    position: relative;
    padding: 15px 0 5px
}

#bo_vc header .icon_reply {
    position: absolute;
    top: 15px;
    left: -20px
}

#bo_vc .sv_wrap {
    margin-right: 15px
}

#bo_vc .member,
#bo_vc .guest,
#bo_vc .sv_member,
#bo_vc .sv_guest {
    font-weight: bold
}

.bo_vc_hdinfo {
    display: inline-block;
    margin: 0 15px 0 5px
}

#bo_vc h1 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_vc a {
    color: #000;
    text-decoration: none
}

#bo_vc p {
    padding: 0 0 5px;
    line-height: 1.8em
}

#bo_vc p a {
    text-decoration: underline
}

#bo_vc p a.s_cmt {
    text-decoration: none
}

#bo_vc_empty {
    margin: 0;
    padding: 20px !important;
    text-align: center
}

#bo_vc #bo_vc_winfo {
    float: left
}

#bo_vc footer {
    zoom: 1
}

#bo_vc footer:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

.bo_vc_act {
    float: right;
    margin: 0;
    list-style: none;
    zoom: 1
}

.bo_vc_act:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

.bo_vc_act li {
    float: left;
    margin-left: 5px
}

#bo_vc_w {
    position: relative;
    margin: 0 0 10px;
    padding: 0 0 20px;
    border-bottom: 1px solid #cfded8
}

#bo_vc_w h2 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#bo_vc_w #char_cnt {
    display: block;
    margin: 0 0 5px
}

#bo_vc_sns {
    margin: 0;
    padding: 0;
    list-style: none;
    zoom: 1
}

#bo_vc_sns:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: ""
}

#bo_vc_sns li {
    float: left;
    margin: 0 20px 0 0
}

#bo_vc_sns input {
    margin: 0 0 0 5px
}

/* 모바일 리스트 스타일 추가 */
.list-mobile .list-item {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.list-mobile .media-body {
    position: relative;
    padding-right: 5px;
}

.list-mobile .media-heading {
    display: block;
    margin-bottom: 5px;
    font-size: 14px;
    line-height: 1.5em;
}

.list-mobile .list-details {
    display: block;
    margin-top: 4px;
    color: #666;
    font-size: 12px;
}

.list-mobile .list-author {
    display: inline-block;
    margin-right: 10px;
}

/* PC 리스트 번호 열 스타일 */
.list-pc td.text-center.font-11 {
    min-width: 70px;
    white-space: nowrap;
    overflow: visible;
}

/* 모바일 최적화 */
@media (max-width: 480px) {

    /* 기본 타이포/간격 */
    html,
    body {
        font-size: 15px;
    }

    /* 카테고리: 고정폭 해제 및 스크롤 */
    #bo_cate ul {
        width: auto;
        padding-left: 0;
        overflow-x: auto;
        white-space: nowrap;
    }

    #bo_cate li {
        float: none;
        display: inline-block;
    }

    #bo_cate a {
        width: auto;
        padding: 8px 12px;
    }

    /* 목록: 썸네일/제목/메타 정리 */
    .list-mobile .list-item {
        padding: 12px 8px;
        border-bottom: 1px solid #eee;
    }

    .list-mobile .list-img img {
        width: 48px;
        height: 48px;
        object-fit: cover;
        border-radius: 4px;
    }

    .list-mobile .media-body {
        padding-right: 0;
    }

    .list-mobile .media-heading {
        font-size: 15px;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .list-mobile .list-details {
        margin-top: 6px;
        color: #888;
        font-size: 12px;
    }

    .list-mobile .list-cnt {
        background: #ff5a3c;
        color: #fff;
        border-radius: 10px;
        padding: 0 6px;
        font-size: 11px;
    }

    /* 읽기: 제목/메타 가독성 + 버튼 탭 타깃 */
    #bo_v_title {
        font-size: 18px;
        line-height: 1.5;
    }

    #bo_v_info {
        font-size: 12px;
        color: #666;
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    #bo_v_img img {
        border-radius: 6px;
    }

    #bo_v_top .bo_v_nb li a,
    #bo_v_top .bo_v_com li a,
    #bo_v_bot .bo_v_nb li a,
    #bo_v_bot .bo_v_com li a {
        min-height: 44px;
        padding: 10px 12px;
    }

    /* 쓰기: 테이블 폼을 블록으로 스택 */
    #bo_w .tbl_frm01 table,
    #bo_w .tbl_frm01 tbody,
    #bo_w .tbl_frm01 tr,
    #bo_w .tbl_frm01 th,
    #bo_w .tbl_frm01 td {
        display: block;
        width: 100%;
    }

    #bo_w .tbl_frm01 th {
        width: 100%;
        padding: 10px 0 6px;
    }

    #bo_w .tbl_frm01 td {
        padding: 0 0 12px;
    }

    #bo_w .frm_input,
    #bo_w .wr_content textarea {
        width: 100% !important; /* 그누보드 JS의 인라인 style="width:70%" 덮어쓰기 */
        box-sizing: border-box;
        font-size: 16px; /* iOS 자동 줌인 방지 */
    }
    #bo_w input[type="text"],
    #bo_w input[type="password"],
    #bo_w textarea {
        font-size: 16px; /* iOS 자동 줌인 방지 */
    }

    #bo_w .tbl_frm01 th label {
        font-weight: 600;
    }

    .btn_confirm {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .btn_confirm .btn_submit,
    .btn_confirm .btn_cancel {
        width: 100%;
        height: 44px;
    }
}

/* 다크 텍스트 대비 보완(옵션) */
.list-mobile .media-heading.now,
.list-mobile .media-heading.notice {
    color: #222;
}

/* ===== 모바일 신청 폼 - 세그먼트/그리드 라디오 버튼 ===== */

/* 선택(wr_1): 수선/창갈이/문의 세그먼트 버튼 */
.radio-segment-wrap {
    display: flex;
    border: 2px solid #e74c3c;
    border-radius: 8px;
    overflow: hidden;
}
.radio-segment-wrap input[type="radio"] {
    display: none;
}
.radio-segment-wrap label {
    flex: 1;
    text-align: center;
    padding: 11px 0;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    color: #e74c3c;
    background: #fff;
    border-right: 1px solid #e74c3c;
    transition: background 0.15s, color 0.15s;
    margin: 0;
}
.radio-segment-wrap label:last-of-type {
    border-right: none;
}
.radio-segment-wrap input[type="radio"]:checked + label {
    background: #e74c3c;
    color: #fff;
}

/* 스터드(wr_2): 4열 그리드 버튼 */
.radio-grid-wrap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.radio-grid-wrap input[type="radio"] {
    display: none;
}
.radio-grid-wrap label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 1px solid #ddd;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    text-align: center;
    background: #f9f9f9;
    color: #555;
    margin: 0;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.radio-grid-wrap input[type="radio"]:checked + label {
    background: #e74c3c;
    border-color: #e74c3c;
    color: #fff;
    font-weight: 700;
}
.radio-grid-wrap label:active {
    background: #c0392b;
    border-color: #c0392b;
    color: #fff;
}
.radio-segment-wrap label:active {
    background: #c0392b;
    color: #fff;
}

/* 목록 총 게시물 수 텍스트 */
.list-total-info {
    font-size: 13px;
    color: #888;
    margin: 6px 0 10px;
}

/* ===== select 커스텀 스타일 ===== */
.select-wrap {
    position: relative;
    display: block;
}
.select-wrap::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #666;
    pointer-events: none;
}
#bo_w .select-wrap select {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    width: 100%;
    padding: 12px 40px 12px 14px;
    font-size: 16px;
    font-family: inherit;
    color: #333;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    min-height: 48px;
    cursor: pointer;
    box-sizing: border-box;
}
#bo_w .select-wrap select:focus {
    border-color: #e74c3c;
    outline: none;
    box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.15);
}

/* ===== 파일 첨부 커스텀 버튼 ===== */
.file-upload-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.file-input-hidden {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}
.file-upload-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    min-height: 48px;
    background: #f8f8f8;
    border: 2px dashed #ddd;
    border-radius: 8px;
    color: #666;
    font-size: 14px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
}
.file-upload-btn:hover,
.file-upload-btn:active {
    border-color: #e74c3c;
    background: #fff5f5;
    color: #e74c3c;
}
.file-name-display {
    font-size: 12px;
    color: #888;
    word-break: break-all;
    min-height: 16px;
}
.file-name-display.has-file {
    color: #333;
    font-weight: 500;
}